package org.icosagon.core.character.traits;

/**
 * Contains the alignment values for a character.
 * @author Daniel Owens
 */
public class Alignment {
    public static final String CHAOTIC = "CHAOTIC";
    public static final String NEUTRAL = "NEUTRAL";
    public static final String GOOD = "GOOD";
    public static final String EVIL = "EVIL";
    public static final String LAWFUL = "LAWFUL";

    /** Behavior are values like chaotic, neutral and lawful. */
    private String behavior = "NEUTRAL";
    /** Morality can be values like good, neutral or evil. */
    private String morality = "NEUTRAL";

    private int behavior_points = 0;
    private int morality_points = 0;

    private Alignment() {}
    public Alignment(String behavior, String morality) {
        this.behavior = behavior;
        this.morality = morality;
    }
    
    public String getBehavior() {
        return behavior;
    }
    
    public String getMorality() {
        return morality;
    }
    
    public String getAlignment() {
        return behavior+" "+morality;
    }

    /**
     * A number value determining a more presice way of telling
     * exactly how behavior oriented your character is.
     * @param value
     */
    public void setBehaviorPoints(int value) {
        this.behavior_points = value;
    }

    public int getBehaviorPoints() {
        return this.behavior_points;
    }

     /**
     * A number value stating exactly how moral your character is.
     * @param value
     */
    public void setMoralityPoints(int value) {
        this.morality_points = value;
    }

    public int getMoralityPoints() {
        return this.morality_points;
    }
}